import ast
import logging
from 程序核心代码.mvvm重构.基础定义.基础图形项.节点图形项.带组件带布局的节点图形项 import 带组件带布局的节点图形项
from 程序核心代码.mvvm重构.基础定义.基础模型.ast节点模型基类 import ast节点基础模型
from 程序核心代码.mvvm重构.基础定义.节点管理器.自动节点注册表 import 注册节点模型, 注册节点图形项

logging.basicConfig(level=logging.WARNING, format='%(asctime)s - %(levelname)s - %(message)s')
日志记录器 = logging.getLogger(__name__)

#@注册节点模型(ast.Constant)
class 常量节点模型(ast节点基础模型):
    """
    常量节点模型，用于表示Python中的常量值
    包括数字、字符串、布尔值、None等
    """
    def __init__(self, ast节点, 所属节点模型管理器, 上级节点=None, 节点位置=None):
        值类型 = type(ast节点.value).__name__
        值描述 = str(ast节点.value)
        if isinstance(ast节点.value, str):
            值描述 = f"'{值描述}'"
        super().__init__(ast节点, 所属节点模型管理器, f"{值类型}: {值描述}", 节点位置=节点位置, 上级节点=上级节点)

        # 设置日志级别
        if self.调试模式:
            日志记录器.setLevel(logging.DEBUG)
            日志记录器.debug(f"{self.__class__.__name__}调试模式已开启")
        else:
            日志记录器.setLevel(logging.ERROR)

        # 创建常量值输出接口
        self.添加接口到节点("数据流", "输出", 接口名称="常量值", 必须连接=True)

# @注册节点图形项(ast.Constant)
# class 常量图形节点(带组件带布局的节点图形项):
#     """
#     常量的图形表示
#     """
#     def __init__(self, 节点模型, 父容器节点图形项管理器, 父项=None):
#         super().__init__(节点模型, 父容器节点图形项管理器, 父项)